Distributed environments such as clusters of computing systems, data centers, and grid systems involve managing a large number of resources and service components. Typical end-service provided to the users of such systems require composition of multiple resources and service components, which together deliver the end-service that is of interest to the users. Such composition of multiple components requires careful configuration of the components and deployment of these components, such that they interface with each other in a compatible manner so that the composite service is deployed, initialized, handles the workload submitted by users, handles component level faults, and provides robust service while handling fluctuations in the workload.
In the past, IT solution architectures have attempted to deal with increasing levels of software and hardware complexity. Many businesses use business processes that comprise one or more services, typically implemented by software that is deployed on hardware, which is housed in a datacenter. As the level of complexity continues to increase, traditional solution development techniques are reaching the limit of their ability to adequately design the IT Infrastructure that supports the multiplicity of business functions that rely on shared IT resources. Determining how well the IT infrastructure satisfies these IT service requirements becomes increasingly difficult, especially as resources are integrated and shared within an IT implementation. Currently, there is no uniform way to compare implementations choices that accounts for the sharing of resources across the layers of the IT infrastructure.